不知道各位有沒有看過這則笑話,你看完今天的內容應該就可以了解這個笑點在哪裡了!
邏輯判斷是各家程式語言很常使用也是訓練大家邏輯思考的地方了,許多的運算或是流程進行就必須先懂這部分的操作,今天就讓我們來好好認識 Ruby 的寫法吧!
其實 Ruby 的等號很多時候不是等號!!
Ruby 裡面只有 nil 跟 false 是假的,其他都是真
if 是我們條件的設定,後面可以透過 elsif 添加額外得條件,或是 else 直接設定前面的條件之外的條件都算
單一條件,且符合條件才會執行內容
if weather == "sunny"
puts "好天氣喔!" #判斷等於'sunny"就印出
end
二分法的方式
if weather == "sunny"
puts "好天氣喔!" #判斷等於'sunny"就印出
else
puts "壞天氣啦!" #其他條件都印這個
end
超過三種條件以上可以使用這種類型判斷
age = 10
if age >= 0 && age<=3
puts "嬰兒" # 年齡>=0 且<=3 就印
elsif age >= 4 && age <= 10
puts "兒童" # 年齡>=4 且<=10 就印
elsif age >= 11 && age<=17
puts "青少年" # 年齡>=11 且<=17 就印
else
puts "成年" #上述以外的條件都印這個
end
unless age >=18
puts "未成年" #如果年齡沒有大於等於18 才印出
end
有些時候會這樣去撰寫,看似精簡,但可讀性比較差。
if age >=18
status = "成年"
else
status = "未成年"
end
#等同這樣的三元運算,用?前來表示if的條件,:前面則表示if的執行結果,後面表示else的執行結果
status = (age>=18)? "成年":"未成年"
利用這樣可以清楚地列出相關的條件,但其實這些都是 ruby 使用語法糖衣包裝過的 if..else
Ruby 的 Case when 可以用範圍的魔法喔!!
age = 20
case age
when 0..3
puts "嬰兒"
when 4..10
puts "兒童"
when 11..17
puts "青少年"
else
puts "成年"
end
很多新手會以為單個 "=" 可以進行條件判斷,但這樣其實是代表指定。
可以看到下面的範例:
score = 95
if age = 100
puts "滿分"
else
puts "未滿分"
end
原本我們預期可以看到 95 分進去條件判斷應該是要印出未滿分,但最後卻印出滿分。是因為 if 那邊應該使用"==",不然會將 score 指定成 100,然後在 ruby 世界中指定這件事情回傳直就是內容本身,所以判斷後得到 true 就回傳"滿分"了。
以上就是基本的條件判斷在 Ruby 裡面的用法,要好好弄清楚,不管是在任何程式語言中都是相當重要的一環呢!
參考資料: